ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース6.0
B25773-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

キャッシュ・エージェントの起動および停止

キャッシュ・エージェントと呼ばれるTimesTenプロセスは、キャッシュ・グループのロードやリフレッシュなどの非同期のキャッシュ処理を実行します(『Oracle TimesTen In-Memory Databaseアーキテクチャ概要』のCache Connect to Oracleに関する章を参照)。Cache Connect to Oracle処理の多くは、キャッシュ・エージェントを使用せずに、TimesTenで直接実行できます。

次の1つ以上の条件が当てはまる場合は、キャッシュ・グループが含まれているデータ・ストアごとに、個別のキャッシュ・エージェントを起動する必要があります。

注意: UNIX Platformsのキャッシュ・エージェントに、ORACLE_HOMEおよびLD_LIBRARY_PATHまたはSHLIB_PATHの環境変数が「UNIX PlatformでのCache Connect to Oracleの設定」で示されているように設定されている必要があります。

次の項で説明するように、DSNのキャッシュ・エージェントは、コマンドラインまたはプログラムから起動できます。

また、Cache Administratorを使用すると、ブラウザからもキャッシュ・エージェントを起動できます。詳細は、「Cache Administrator」を参照してください。

注意: アクセス制御を有効にしてTimesTenをインストールした場合、キャッシュ・エージェントを起動または停止するには、データ・ストアに対してADMIN権限が必要です。また、TimesTenユーザー名はOracleユーザー名と一致している必要があります(これは、内部ユーザーおよび外部ユーザーの両方に適用されます)。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御と非rootインストールに関する章を参照してください。

コマンドラインからのキャッシュ・エージェントの制御

コマンドラインからキャッシュ・エージェントを制御するには、ttAdminユーティリティを使用します。ttAdminユーティリティを使用して、次のタスクを実行できます。

ttAdminユーティリティの使用方法の詳細は、『Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド』を参照してください。

コマンドラインからのキャッシュ管理ユーザーIDおよびパスワードの設定

次のいずれかのキャッシュ・グループ・タイプを使用している場合は、「Oracleユーザーの作成および権限の設定」で示されているOracle権限を持つキャッシュ管理ユーザー・アカウントが必要です。

キャッシュ管理ユーザーIDは、次のルールに従っている必要があります。

キャッシュ管理パスワードは、次のルールに従っている必要があります。

キャッシュ・エージェントを起動する前にキャッシュ管理ユーザーIDおよびパスワードを設定します。次の構文を使用します。

ttAdmin -cacheUidPwdSet -cacheUid cacheUid -cachePwd cachePwd DSN
注意: データ・ストア内に自動リフレッシュ・キャッシュ・グループまたはAWTキャッシュ・グループが存在している場合、キャッシュ管理ユーザーIDおよびパスワードを再設定することはできません。これらのキャッシュ・グループを削除してから、キャッシュ管理ユーザーIDおよびパスワードを再設定する必要があります。
例3.14
ttAdmin -cacheUidPwdSet -cacheUid testuser -cachePwd mypass myOraCache

キャッシュ管理ユーザーIDおよびパスワードを変更する場合は、キャッシュ・エージェントを再起動する必要があります。

注意: データ・ストアにキャッシュ・グループが存在しない場合は、キャッシュ管理ユーザーIDおよびパスワードを設定しないでください。キャッシュ・グループが存在しない場合にキャッシュ管理ユーザーIDおよびパスワードを設定すると、それらのキャッシュ管理ユーザーIDおよびパスワードがOracleデータベースに対して使用され、検証されます。

コマンドラインからのキャッシュ・エージェントの起動

コマンドラインからキャッシュ・エージェントを起動するには、次の構文を使用します。

ttAdmin -cacheStart DSN
例3.15
ttAdmin -cacheStart myOraCache

相対パスのDSNで識別されるデータ・ストアのキャッシュ・エージェントを起動しようとすると、TimesTenはその実行位置から相対的にデータ・ストアを検索し、失敗します。たとえば、Windowsで、DSNのデータ・ストアにパスをDataStore=.\dsn1と指定し、次のコマンドでキャッシュ・エージェントを起動しようとしたとします。

ttAdmin -cacheStart dsn1

キャッシュ・エージェントは、install_dir\srv\dsn1でデータ・ストアを検索します。その位置ではデータ・ストアを検出できないため、エージェントは起動されません。UNIXでは、キャッシュ・エージェントは次の位置を検索します。

/var/TimesTen/ttversion/bits

コマンドラインからのキャッシュ・エージェントの停止

キャッシュ・エージェントを停止するには、次の構文を使用します。

ttAdmin -cacheStop DSN
例3.16
ttAdmin -cacheStop myOraCache
注意: AUTOREFRESH機能を使用している場合は、キャッシュ・グループの削除または変更後すぐにキャッシュ・エージェントを停止しないでください。2分以上待機してください。キャッシュ・エージェントでは、AUTOREFRESHによって使用されたOracleオブジェクトをクリーンアップするためにこの時間が必要です。

コマンドラインからのキャッシュ・エージェント再起動ポリシーの設定

-cachePolicyオプションを指定してttAdminを使用すると、Times Ten Data Managerデーモンで、Times Ten Data Managerを起動するたびにキャッシュ・エージェントが起動されるようにできます。次の構文を使用します。

ttAdmin -cachePolicy always DSN
例3.17
ttAdmin -cachePolicy always myOraCache
注意: キャッシュ・グループが自動リフレッシュされる場合は、ttAdmin -cachePolicyをコールする前にキャッシュ管理ユーザーIDおよびパスワードを設定する必要があります。

キャッシュ・エージェントの自動起動を無効にするには、次の構文を使用します。

ttAdmin -cachePolicy manual DSN
例3.18
ttAdmin -cachePolicy manual myOraCache

プログラムからのキャッシュ・エージェントの制御

データ・ストアのキャッシュ・エージェントをプログラムから制御するには、まず、データ・ストアに接続します。ttCacheUidPwdSet、ttCacheStart、ttCacheStopまたはttCachePolicyプロシージャを使用して、次のタスクを実行します。

注意: アクセス制御が有効になっている場合は、キャッシュ・エージェントおよびレプリケーション・エージェントの起動、停止およびポリシー設定にADMIN権限が必要です。また、キャッシュ管理ユーザーIDおよびパスワードの設定にもADMIN権限が必要です。

ttCacheUidPwdSet、ttCacheStart、ttCacheStopおよびttCachePolicyプロシージャの詳細は、『Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド』の組込みプロシージャに関する章を参照してください。

プログラムからのキャッシュ管理ユーザーIDおよびパスワードの設定

次のいずれかのキャッシュ・グループ・タイプを使用している場合は、「Oracleユーザーの作成および権限の設定」で示されているOracle権限を持つキャッシュ管理ユーザー・アカウントが必要です。

キャッシュ管理ユーザーIDは、次のルールに従っている必要があります。

キャッシュ管理パスワードは、次のルールに従っている必要があります。

キャッシュ・エージェントを起動する前にキャッシュ管理ユーザーIDおよびパスワードを設定します。ttCacheUidPwdSetプロシージャを使用します。

例3.19

この例では、データ・ストアは、接続ハンドルhdbcで識別されます。キャッシュ管理ユーザーIDはtestuser、キャッシュ管理ユーザー・パスワードはmypassです。

sprintf( stmt, "CALL ttCacheUidPwdSet('testuser','mypass')");
       rc = SQLAllocStmt( hdbc, &hstmt );
       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );
sprintf( stmt, "CALL ttCacheStart()" );
       rc = SQLAllocStmt( hdbc, &hstmt2 );
       rc = SQLExecDirect( hstmt2, (SQLCHAR *) stmt, SQL_NTS );

プログラムからのキャッシュ・エージェントの起動

キャッシュ・エージェントを起動するには、ttCacheStartプロシージャを使用します。

例3.20

この例では、データ・ストアは接続ハンドルhdbcで識別されます。

sprintf( stmt, "CALL ttCacheStart()" );
       rc = SQLAllocStmt( hdbc, &hstmt );
       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );
注意: 自動コミットを無効にしている場合は、ttCacheStartをコールする前とコールした後の両方でコミットする必要があります。

プログラムからのキャッシュ・エージェントの停止

キャッシュ・エージェントを停止するには、ttCacheStopプロシージャを使用します。

例3.21
sprintf( stmt, "CALL ttCacheStop()" );
       rc = SQLAllocStmt( hdbc, &hstmt );
       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );

ttCacheStopプロシージャには、オプションのパラメータstopTimeoutがあります。このパラメータで、キャッシュ・エージェントが停止するまでTimesTenデーモンが待機する時間を指定します。キャッシュ・エージェントが指定した時間内に停止しない場合、そのキャッシュ・エージェントはTimesTenデーモンによって停止されます。stopTimeoutのデフォルト値は100秒です。値0(ゼロ)は、永久に待機することを示します。

例3.22

キャッシュ・エージェントを停止し、stopTimeoutを160秒に設定するには、次のように入力します。

sprintf( stmt, "CALL ttCacheStop(160)" );
       rc = SQLAllocStmt( hdbc, &hstmt );
       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );
注意: 自動コミットを無効にしている場合は、ttCacheStopをコールする前とコールした後の両方でコミットする必要があります。
注意: AUTOREFRESH機能を使用している場合は、キャッシュ・グループの削除または変更後すぐにキャッシュ・エージェントを停止しないでください。2分以上待機してください。キャッシュ・エージェントでは、AUTOREFRESHによって使用されたOracleオブジェクトをクリーンアップするためにこの時間が使用されます。

プログラムからのキャッシュ・エージェント再起動ポリシーの設定

ttCachePolicyプロシージャをコールすることによって、キャッシュ・エージェント再起動ポリシーを設定できます。データ・ストアの再起動ポリシーは、「コマンドラインからのキャッシュ・エージェント再起動ポリシーの設定」のttAdmin -cachePolicyで説明されている方法と同様の方法で、manual (デフォルト)またはalways に設定できます。

例3.23

hdbc接続ハンドルで識別されるデータ・ストアのキャッシュ・エージェント再起動ポリシーをalwaysに設定するには、次のように入力します。

sprintf( stmt, "CALL ttCachePolicy ('always')");
       rc = SQLAllocStmt( hdbc, &hstmt );
       rc = SQLExecDirect( hstmt, (SQLCHAR *) stmt, SQL_NTS );